package com.forum.common.event;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 消息事件基类
 * 所有具体的消息事件都应继承此类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public abstract class MessageEvent implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * 事件类型
     */
    private EventType type;
    
    /**
     * 发送者ID
     */
    private Long senderId;
    
    /**
     * 接收者ID
     */
    private Long receiverId;
    
    /**
     * 关联资源ID（如帖子ID、评论ID等）
     */
    private Long resourceId;
    
    /**
     * 事件内容
     */
    private String content;
    
    /**
     * 事件时间
     */
    private LocalDateTime eventTime = LocalDateTime.now();
    
    /**
     * 资源类型（如POST、COMMENT等）
     */
    private String resourceType;
    
    /**
     * 链接地址
     */
    private String link;
} 